package com.hanhai.material.device.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.*;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 成型生产日报 DO
 *
 * @author 超级管理员
 */
//@KeySequence("forming_product_day_report_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(value = "data.forming_product_day_report",dataSource = "postgress")
public class FormingProductDayReportDO  {

    /**
     * 数据ID
     */
    @Id(keyType = KeyType.None)
    private String id;
    /**
     * 填报人员
     */
    private String reporter;
    /**
     * 机台编号
     */
    private String machineName;
    /**
     * 合模数量
     */
    private Integer totalCount;
    /**
     * 机种名称
     */
    private String machineTypeName;
    /**
     * 生产班别
     *
     * 枚举 {@link TODO mes_shift_code 对应的类}
     */
    private String shiftCode;
    /**
     * 生产日期
     */
    private LocalDateTime productDate;
    /**
     * 开始时间
     */
    private LocalDateTime productStartTime;
    /**
     * 结束时间
     */
    private LocalDateTime productEndTime;
    /**
     * 白夜班别
     *
     * 枚举 {@link TODO mes_shift 对应的类}
     */
    private Integer shift;
    /**
     * 半/全自动
     */
    private Integer isAuto;
    /**
     * 实际人数
     */
    private Integer peopleNum;
    /**
     * 实际工时
     */
    private BigDecimal actualWorkTimeNum;
    /**
     * 实际周期
     */
    private BigDecimal actualCycle;
    /**
     * 员工姓名
     */
    private String remarkName;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 机种件别
     */
    private String machineItemName;
    /**
     * 产品料号
     */
    private String productId;
    /**
     * 模穴数量
     */
    private Integer moldCaveNum;
    /**
     * 备注信息
     */
    private String remark;
    /**
     * 标准周期
     */
    private BigDecimal standardRecycle;
    /**
     * 标准数量
     */
    private Integer standardNum;
    /**
     * 投入数量
     */
    private Integer inputQuantity;
    /**
     * 当日生产良品数量
     */
    private Integer goodNum;
    /**
     * 当日尾箱数量
     */
    private Integer tailBoxNum;
    /**
     * 前日尾箱数量
     */
    private Integer lastTailBoxNum;
    /**
     * 当日待判数量
     */
    private Integer detentionNum;
    /**
     * 当日入库数量
     */
    private Integer todayIntoNum;
    /**
     * 线长名称
     */
    private String lineManagerName;
    /**
     * 线长工号
     */
    private String lineManagerJobNo;
    /**
     * 填报人员
     */
    private String reporterName;
    /**
     * 产品名称
     */
    private String productName;
    /**
     * 模具编号
     */
    private String moldNo;
    /**
     * 合计报废数量
     */
    private Integer totalBadNum;

    private String workPlanId;

    private Integer actualNum;

    private LocalDateTime createTime;

    private LocalDateTime updateTime;

    private String creator;

    private String updater;

    private BigDecimal adjustTime;
    private String adjustReason;

    @Column(ignore = true)
    private List<FormingProductDayBadDetailDO> formingProductDayBadDetailDOList;
    @Column(ignore = true)
    private List<FormingProductDayPendingIntoDetailDO> formingProductDayPendingIntoDetailDOList;
    @Column(ignore = true)
    private List<FormingProductDayWorktimeLossDetailDO> formingProductDayWorktimeLossDetailDOS;

}